home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 007 / klp19.arc / KLP.DOC < prev    next >
Text File  |  1985-12-19  |  60KB  |  1,770 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.         KINETICS
  7.         LINEAR PROGRAMMING SYSTEM
  8.  
  9.  
  10.         Version 1.9, April 1984
  11.         Copyright 1984, All Rights Reserved
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.         This documentation and the associated computer 
  36.         software may be copied and distributed by the user 
  37.         provided that copies are made in entirety 
  38.         including copyright notices and the Kinetics 
  39.         Software License Agreement.  A copy of this 
  40.         agreement is provided separately and also in 
  41.         Section 10 of this documentation.  
  42.  
  43.         If you find this software useful, we trust you to 
  44.         send $45.00 to Kinetics Software and become a 
  45.         registered user.
  46.         Correspondence should be addressed to:
  47.              Kinetics Software
  48.              1390 Fell Street,  #103
  49.              San Francisco, California
  50.              94117
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.                                   CONTENTS
  67.  
  68.               SECTION                                 PAGE       
  69.                   
  70.         1. INTRODUCTION                                
  71.              SOFTWARE.................................... 1 
  72.              HARDWARE.................................... 1
  73.              OVERVIEW.................................... 2
  74.              RUNNING KLP................................. 3
  75.  
  76.         2. DEFINE OPTIMIZATION........................... 4
  77.  
  78.         3. CREATE MATRIX                                 
  79.              NEW DEFINITION (N).......................... 7
  80.              USING SPREADSHEET SOFTWARE (B).............. 9
  81.              SAVING THE MATRIX (S).......................12 
  82.              RETRIEVING THE MATRIX (R)...................13
  83.  
  84.         4. MODIFYING THE MATRIX                           
  85.              ADJUST MATRIX SIZE, NAMES, ETC. (A).........14
  86.              CHANGE COLUMN CONTENTS (C)..................14
  87.              UPDATE ROW CONTENTS (U).....................15
  88.  
  89.         5. SOLVE LP PROBLEM (L)..........................17
  90.  
  91.         6. PRINT MATRIX AND RESULTS
  92.              PRINT MATRIX (PP,PS,PD).....................19
  93.              PRINT RESULTS (1,2,3).......................20
  94.              GENERATE SPREADSHEET INPUT FILE.............20
  95.  
  96.         7. COMMAND SUMMARY...............................21
  97.  
  98.         8. GLOSSARY......................................23
  99.  
  100.         9. REFERENCES ON LP..............................25
  101.  
  102.         10.KINETICS SOFTWARE LICENSE AGREEMENT...........26
  103.  
  104.         11.REGISTRATION OR ORDER FORM....................27
  105.  
  106.  
  107.  
  108.         NOTE: KLP commands are indicated in parentheses.
  109.  
  110.            
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.                     KINETICS LINEAR PROGRAMMING SYSTEM
  123.  
  124.  
  125.  
  126.                               INTRODUCTION
  127.  
  128.         The Kinetics Linear Programming System is a computer system 
  129.         which those familiar with linear programming,(LP), can use 
  130.         to solve LP problems on a Personal Computer.  In this 
  131.         introduction, we describe the software and hardware needed 
  132.         to use and compatible with KLP, provide an overview of klp's 
  133.         capabilities and summarize how to use KLP.
  134.  
  135.         SOFTWARE
  136.  
  137.         KLP is an integrated software system which can be used to 
  138.         define, solve, review and refine a linear programming 
  139.         problem.  While no other software is necessary, KLP can be 
  140.         used in conjunction with VISICALC(tm), LOTUS 123(tm) and 
  141.         SUPERCALC2(tm).  The use of KLP in conjunction with 
  142.         spreadsheet programs such as these is described in Section 3 
  143.         of this documentation.
  144.  
  145.         The KLP master diskette  contains 6 files:
  146.  
  147.  
  148.                   KLP.EXE - KINETICS LINEAR PROGRAMMING SYSTEM
  149.                   KLP.DOC - DOCUMENTATION (you are reading it)
  150.                   FURNFAC.MAT - FURNITURE FACTORY SAMPLE PROBLEM
  151.                   FURNFAC.SSI - KLP SPREADSHEET OUTPUT
  152.                   FURNFAC.TXT - KLP RESULTS FILE
  153.                   FURNFAC.DMP - KLP MATRIX PRINT FILE
  154.  
  155.         We suggest that you make a copy of the diskette and then put 
  156.         the master away in a safe place.  Use the working copy for 
  157.         learning to use the system by going through the sample 
  158.         problem.  All files on the disk can be typed to the screen 
  159.         or printer except KLP.EXE.  There is no operating system on 
  160.         the disk.  We expect that you will want to copy KLP.EXE to a 
  161.         working disk containing other software and files you use so 
  162.         that disk changes will not be necessary when going from 
  163.         other programs to KLP and back.  
  164.  
  165.         HARDWARE
  166.  
  167.         KLP is designed to operate with minimum hardware as follows:
  168.  
  169.                        IBM PC with one disk drive
  170.                        128K of RAM memory
  171.                        80 column monitor
  172.                        DOS 1.1 or 2.0
  173.                        Printer with condensed print capability, (132                               
  174.         columns)
  175.  
  176.         Additional hardware such as a second disk drive or a hard 
  177.         disk can make KLP easier to use and somewhat faster, but has 
  178.         no affect on KLP's capacity.
  179.  
  180.  
  181.  
  182.  
  183.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 1
  184.  
  185.  
  186.  
  187.  
  188.                         OVERVIEW OF KLP CAPABILITIES
  189.  
  190.         KLP is an integrated software system that will allow you to 
  191.         solve linear programing problems of considerable complexity 
  192.         with ease and speed.  By selecting various commands, a 
  193.         problem can be defined and optimized, matrices can be 
  194.         printed or saved in files that are named as you desire and a 
  195.         complete set of results can be printed, saved to disk or 
  196.         written to a spreadsheet input file and read back in to your 
  197.         favorite spreadsheet for further processing, fancy reports, 
  198.         etc.
  199.  
  200.                   o  The original problem setup is  done with this 
  201.              program.  Alternatively, it can be done with your 
  202.              favorite spreadsheet program like VISICALC (tm), LOTUS 
  203.              123(tm) or SUPERCALC2(tm).  The rules for doing this 
  204.              are given in Section 3. 
  205.  
  206.                   o  Once a matrix input file has been prepared, any 
  207.              and all manipulations of the problem can be done with 
  208.              KLP.  Minimum and Maximum limits on rows or columns or 
  209.              values in the matrix itself can be changed.  The number 
  210.              of rows and columns can be increased or decreased.  The 
  211.              names of rows and  columns may also be changed anytime.
  212.  
  213.                        o  Maximum capacity of the KLP is determined   
  214.              in four ways:  1. The product of rows times columns may 
  215.              not exceed  2000.  2. The sum of rows and columns may 
  216.              not exceed 120.  The program will stop, print a message 
  217.              as to the reason and quit if either of these limits is 
  218.              exceeded.  3.  The Adjust Matrix command is limited to 
  219.              120 Column and 120 Row names.  4.  The Change Columns 
  220.              command is limited to 60 non-zero entries in any matrix 
  221.              column.  Limits 3 and 4 do not apply if you use a 
  222.              spreadsheet program to set up and modify the matrix.
  223.  
  224.                   o  In general, single letter or number responses 
  225.              that you make in reply to program questions or option 
  226.              selections do not also require a carriage return,( 
  227.              enter key).  All other entries require a carriage 
  228.              return (enter key) or , in some cases, the INS key.
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 2
  245.  
  246.  
  247.  
  248.  
  249.                        RUNNING KLP
  250.  
  251.         From  DOS level (A>) type:  KLP  
  252.  
  253.         KLP loads and presents a title and copyright information 
  254.         screen similar to the first page of this manual. Please read 
  255.         it.   After you press any key, the main command menu is 
  256.         displayed as shown below:
  257.           
  258.  
  259.                                KLP COMMAND MENU
  260.  
  261.  
  262.                DEFINE NEW MATRIX -  N       CHANGE COLUMNS -      C
  263.                RETRIEVE MATRIX -    R       UPDATE ROWS -         U
  264.                SAVE MATRIX -        S       ADJUST MATRIX SIZE -  A
  265.                PRINT MATRIX -       P       SOLVE LP -            L
  266.                RESULTS TO SCREEN -  1       QUIT -                Q
  267.                RESULTS TO PRINTER - 2       DUMP TO SS FILE -     D
  268.                RESULTS TO DISK FILE-3       BEGIN FROM SS FILE -  B
  269.              --------------------------------------------------------
  270.  
  271.  
  272.         Now you can go to work.  Most of the Commands are self 
  273.         explanatory. However, they are summarized in Section 7.  In 
  274.         the following Sections, we describe the process used to 
  275.         define an lp problem and the commands in detail.
  276.  
  277.         KLP will present the COMMAND screen after completing each 
  278.         command you select.
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.  
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 3
  306.  
  307.  
  308.  
  309.                      2. - DEFINE OPTIMIZATION
  310.  
  311.         KLP is designed for those familiar with setting up and 
  312.         running LP's.  If you are not, Section 9 recommends some 
  313.         reading material to help you.  
  314.  
  315.         Your LP problem should be defined using a format similar to 
  316.         that shown below.  Precise input formats are described in 
  317.         Section 3.  The problem defined below deals with a furniture 
  318.         maker who must decide how many stools, chairs and tables to 
  319.         make in a given period of time.
  320.  
  321.         
  322.  
  323.              A        B        C         D         E         F        G        H        I        J        K
  324.         1  KINETICS                   COLUMN      NAME     STOOLS   CHAIRS   TABLES  B BLOCK   DOWELS   LABOR
  325.         2         ITERATIONS                        MAX      500     500      500      100      400      320
  326.         3    ACTUAL  MAXIMUM                        MIN        0       0        0        0        0        0
  327.         4                 15                   ACTIVITY
  328.         5                                      RED COST
  329.         6      NAME  ACTIVITY MINIMUM  MAXIMUM DUAL ACT
  330.         7     B BLOCK               0        0                 2        3       12      -1
  331.         8     DOWELS                0        0                10       13       16               -1
  332.         9     LABOR                 0        0                 4       12       20                        -1
  333.         10    PROFIT                0        0               -90     -120     -400      4        1.25     11
  334.  
  335.  
  336.         
  337.  
  338.         Decide on the title for the problem and the names of all the 
  339.         rows and columns.  Write down reasonable values for the 
  340.         maximum and minimum values for both rows and columns. If you 
  341.         need a fixed value set the minimum and maximum to the same 
  342.         value.  If, for example, a row or column really only has a 
  343.         minimum, a maximum  must still be placed on the row or 
  344.         column that is just reasonably higher than any value you 
  345.         think could be achieved.  Too large a value can increase 
  346.         roundoff error during the LP and cause other mathematical 
  347.         difficulties which may lead to no usable solution possible 
  348.         from the LP.  Both minimums and maximums must be supplied 
  349.         and they must be reasonable relative to the value of the row 
  350.         or column in the final solution.  
  351.          
  352.         The last row must be the objective function,( the profit or 
  353.         value to be optimized).  Note also that KLP will always 
  354.         minimize the objective function, in keeping with customary 
  355.         LP practice.
  356.  
  357.         The matrix of coefficients  can be viewed as equations that 
  358.         calculate row values from column values.  For example:
  359.  
  360.          ROW7 = 7.0*COLUMN6 +  2.5*COLUMN7.  
  361.  
  362.         The only equations you need are like these.  You do not need 
  363.         to put in equations to limit either column or row values.  
  364.  
  365.  
  366.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 4
  367.  
  368.  
  369.  
  370.         These are direct inputs and are handled directly by KLP 
  371.         without taking up matrix space.  This is one reason why KLP 
  372.         will handle much larger problems that other LP codes that 
  373.         allow the same matrix size, but require you to use space 
  374.         with row and column limit equations.
  375.  
  376.         In designing the matrix structure for your problem, you 
  377.         should try to define your equations such that non-zero 
  378.         values in the matrix are between 0.01 and 100.0,(plus or 
  379.         minus).  Values less than .01 will tend to get lost as 
  380.         roundoff during LP iterations eats away at the number of 
  381.         significant digits.  Numbers greater than 100. tend to cause 
  382.         roundoff error and loss of significant digits.  The best of 
  383.         all possible matrices has values that are either zero or 
  384.         close to 1.0.  You improve KLP's ability to provide fast, 
  385.         usable answers by paying attention to the absolute size of 
  386.         the numbers in your matrix.
  387.  
  388.         KLP calculates and prints an estimate of the roundoff error 
  389.         that has occurred during the LP.  If this is large enough to 
  390.         cause the answers to be in question, KLP prints an error 
  391.         message, and some friendly advice!
  392.  
  393.         As an example of how to define an optimization, we now 
  394.         discuss the furniture factory example, and suggest how you 
  395.         may study various alternatives with KLP.
  396.  
  397.         Our sample problem concerns a small manufacturing firm that 
  398.         buys Butcher Block slabs and Dowels and makes either stools, 
  399.         chairs or tables from them.  
  400.  
  401.         We want to figure out how many stools, chairs and tables we 
  402.         should make in a month, and how many Butcher Block slabs and 
  403.         Dowels we should buy given the labor force we have 
  404.         available.  We also know that we cannot buy an unlimited 
  405.         number of Dowels or Butcher Blocks.  Our supplies are 
  406.         limited to 100 Butcher Blocks and 400 Dowels per month.
  407.  
  408.         Each row of the LP matrix balances our purchases against 
  409.         usage of a particular resource. The first row balances the 
  410.         use of Butcher Block in the three products against 
  411.         purchases.  The second row balances Dowels and the third  
  412.         Labor.  The maximum and minimum values for the rows are set 
  413.         to zero, because the difference between purchase and use 
  414.         must be zero.  Note that we could set the limits to a value 
  415.         other than zero to simulate use or buildup of inventory.   
  416.  
  417.         The fourth row is the Profit or Objective Function.  It 
  418.         accounts for our costs for resources and our  sales income 
  419.         for our products.  Since the LP minimizes, costs are put in 
  420.         as positive values, sales or incomes are put in as negative 
  421.         values so the LP will try to get as negative a value for the 
  422.         objective function as possible.  
  423.  
  424.         The first column named STOOLS counts the number of stools we 
  425.  
  426.  
  427.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 5
  428.  
  429.  
  430.  
  431.         will make in a month.  Reading down the column, we see that 
  432.         one stool requires 2 Butcher Block slabs, 10 Dowels and 4 
  433.         units of labor.  The sale of one stool gives us an income of 
  434.         -90 dollars, negative because the LP minimizes the value of 
  435.         the objective function. Costs are entered  as positive 
  436.         numbers. 
  437.  
  438.         Similarly, the Tables column shows that we require 12 
  439.         Butcher Blocks, 16 Dowels and 20 units of labor for each.  
  440.         Our income on sale is -400 dollars.
  441.  
  442.         The next three columns are to count and value our purchases.  
  443.         The Dowels column has a -1 just on the dowels row.  Since 
  444.         the minimum and maximum value for the row is set to zero, 
  445.         the Dowels column is forced to equal the sum of the uses of 
  446.         dowels in stools, chairs and tables.  A positive 1.25 
  447.         $/dowel is put in the objective function as the cost of each 
  448.         one.  Similarly, Butcher Blocks cost 4 each and labor 11 per 
  449.         unit.
  450.  
  451.         The limits on our purchases of Butcher Blocks and Dowels are 
  452.         100 and 400.  The labor limit is 320 units.  The limits on 
  453.         production of stools, chairs and tables is set to 500 each.  
  454.         Much more than could be actually made.  A limit is entered 
  455.         because KLP requires every column to have both a maximum and 
  456.         a minimum value.
  457.  
  458.         It turns out that Linear Programming is a very good method 
  459.         for solving these kinds of Resource Allocation problems.  
  460.         They are generally linear, or can be posed in terms of 
  461.         balance equations, (rows), with constant,(linear), 
  462.         coefficients.   Also, in most cases, LP comes to a unique 
  463.         optimum solution, which makes it possible to get very 
  464.         consistent results when alternatives are explored.
  465.  
  466.         For example, we suggest that you investigate various 
  467.         alternatives using the sample problem as a starting point.  
  468.         Try changing Labor Cost, labor needed per stool or per 
  469.         chair, cost of materials, materials needed per chair, etc.  
  470.         You will readily appreciate that even such a simple example 
  471.         can give a manufacturer real, important insight into the 
  472.         effects of costs, productivity, net sales income and their 
  473.         interactions on the company's net profit.  
  474.  
  475.         Linear Programming was invented many years ago,( by George 
  476.         B. Dantzig) to solve a resource allocation problem.  Since 
  477.         then, ( ca 1947), numerous other uses have been found for 
  478.         it.  LP is in everyday use for Production Scheduling, Least 
  479.         Cost Diet determination for animals, Transportation and 
  480.         Supply alternatives, Cutting Stock problems in 
  481.         manufacturing, and much more.
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 6
  489.  
  490.  
  491.  
  492.            SECTION 3 - DEFINE MATRIX
  493.  
  494.         The last section described how to define an optimization 
  495.         problem.  This section describes how to translate your 
  496.         problem definition into a matrix within the KLP system.  
  497.         Specifically, we describe how to:
  498.  
  499.              o Define a matrix from scratch.
  500.              o Define a matrix using a spreadsheet program.
  501.              o Save a matrix.
  502.              o Retrieve a previously defined matrix.
  503.  
  504.         Remember that KLP can be used without any spreadsheet 
  505.         software.  Hence, if you are using KLP alone, you can skip 
  506.         the section on use of a spreadsheet program.
  507.  
  508.         DEFINING A MATRIX FROM SCRATCH
  509.  
  510.         A new matrix is created by using the command: N.  When N is 
  511.         typed, KLP will ask a series of questions.  Your answers to 
  512.         these questions will determine the title of the problem, the 
  513.         maximum number of iterations to be allowed, the size of the 
  514.         matrix and the names of the rows and columns.  All values 
  515.         within the matrix are initially set to zero.  The actual 
  516.         values are entered column by column using the CHANGE COLUMNS 
  517.         command described in Section 4.
  518.  
  519.         The first question is: 
  520.  
  521.              FILENAME ? _____________
  522.  
  523.              INCLUDE DISK DRIVE IDENTIFICATION 
  524.                                   
  525.              (touch enter to use default: A:MATRIX.MAT)
  526.  
  527.         The name entered here is used when saving the matrix in 
  528.         future.  The name should be preceeded by the disk drive 
  529.         designator, A: or B: for example. Except, if no designation 
  530.         is specified, then A: will be assumed.  The name itself must 
  531.         be 8 or fewer characters and then should be followed by the 
  532.         extension .MAT.  For example, the furniture factory sample 
  533.         problem has used the name FURNFAC.MAT.  If no name is 
  534.         entered, the matrix filename is automatically set to 
  535.         A:MATRIX.MAT.
  536.  
  537.         Second, KLP asks:
  538.  
  539.                   MAXIMUM ITERATIONS ? 
  540.  
  541.         Enter a number and touch the ENTER key.  The number of 
  542.         iterations is based on previous experience or enter about 3 
  543.         times the number of columns.  It is very unlikely that more 
  544.         than this will be required.  If the maximum is reached 
  545.         during the LP, you will be asked whether to stop or double 
  546.         the limit and go on.
  547.  
  548.  
  549.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 7
  550.  
  551.  
  552.  
  553.  
  554.         Third, KLP asks:
  555.  
  556.                   ENTER NUMBER OF ROWS TO ADD ( NOW = XX) ?
  557.  
  558.         In this case, XX will be the number of rows already in the 
  559.         matrix if you are changing the matrix size.  XX will be zero 
  560.         if you are generating a new matrix.  The maximum number of 
  561.         rows KLP can handle is 120.  Answer this question with the 
  562.         total number of rows for a new matrix, or the additional 
  563.         rows if you are changing matrix size.
  564.  
  565.         Fourth, KLP asks:
  566.  
  567.                   ENTER NUMBER OF COLUMNS TO ADD ( NOW = XX) ?
  568.  
  569.         As in the case of rows, XX will be the number of columns in 
  570.         the matrix if you are changing matrix size.  XX will be zero 
  571.         if you are generating a new matrix.  The maximum number of 
  572.         columns KLP can handle is 120.  Answer this question with 
  573.         the total number of columns for a new matrix or the 
  574.         additional columns if you are changing matrix size.
  575.  
  576.  
  577.         Next, KLP presents a screen with a number and a line for 
  578.         each column name.  If you are changing an existing matrix, 
  579.         the existing names will be printed and blank lines added at 
  580.         the end corresponding to the number of columns you indicated 
  581.         you wanted to add.  If this is a new matrix, all lines will 
  582.         be blank.  Type in each name as you want it.  The cursor 
  583.         arrow keys move the cursor as they indicate.  The ENTER key 
  584.         moves the cursor to the next name line, and the home and end 
  585.         keys move you to the beginning and the end of the list 
  586.         respectively.  Each name should contain no more than 8 
  587.         characters.  The number preceeding each line indicates the 
  588.         columns position in the matrix, from left to right.  Note 
  589.         that existing names can be changed as well as new ones 
  590.         added.  Existing  columns also can be deleted by blanking 
  591.         out the name. Once you have changed or added all names as 
  592.         desired, accept the list by touching the INS key.      
  593.  
  594.         Next complete the row names using the same procedure as used 
  595.         to complete the column names.  As described in Section 2, 
  596.         the objective function must be the last row.  When you have 
  597.         changed or added each row name as desired, touch INS.  This 
  598.         accepts the row names and returns you to the command menu.
  599.  
  600.         Note that the matrix just defined is not automatically 
  601.         saved.  You must now use the S command to save what you have 
  602.         entered in a disk file.
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 8
  611.  
  612.  
  613.  
  614.          USING A SPREADSHEET PROGRAM
  615.  
  616.         Skip this section if you are not using a spreadsheet 
  617.         program.
  618.  
  619.         We assume that you are experienced with whatever spreadsheet 
  620.         program you want to use.  The example  we will go through is 
  621.         a small application with only a few rows and columns.  Our 
  622.         intent, after all, is not to overwork the program, but to 
  623.         teach you how to use it as quickly as possible.  This 
  624.         section will explain the more mechanical aspects of what the 
  625.         spreadsheet must look like before you create a DIF(tm) file 
  626.         and actually start running KLP.
  627.  
  628.         The spreadsheet is divided into four areas as shown below:
  629.  
  630.  
  631.         
  632.  
  633.              A        B        C         D         E         F        G        H        I        J        K
  634.         1  KINETICS                   COLUMN      NAME     STOOLS   CHAIRS   TABLES  B BLOCK   DOWELS   LABOR
  635.         2         ITERATIONS                        MAX      500     500      500      100      400      320
  636.         3    ACTUAL  MAXIMUM                        MIN        0       0        0        0        0        0
  637.         4                 15                   ACTIVITY
  638.         5                                      RED COST
  639.         6      NAME  ACTIVITY MINIMUM  MAXIMUM DUAL ACT
  640.         7     B BLOCK               0        0                 2        3       12      -1
  641.         8     DOWELS                0        0                10       13       16               -1
  642.         9     LABOR                 0        0                 4       12       20                        -1
  643.         10    PROFIT                0        0               -90     -120     -400      4        1.25     11
  644.  
  645.  
  646.         
  647.         Before we delve into the details, let us deliver a caution: 
  648.         We strongly recommend that you use names of up to 8 
  649.         characters but not longer.  Many of the KLP Commands will 
  650.         only handle 8 characters with ease.  Any modifications will 
  651.         require you to type the whole name correctly.  
  652.  
  653.         The upper left area defines what is to be placed in other 
  654.         rows and columns and allows you to enter a title and an 
  655.         entry for the maximum number of LP iterations that you will 
  656.         allow.  This area is five columns wide and six rows long.  
  657.         The TITLE goes in cells A1-C1.  The maximum iterations go in 
  658.         cell B4.  That's it!!.  All remaining cells should be 
  659.         entered as shown.  If you leave them out it wont hurt 
  660.         anything, however.  All other entries are just to identify 
  661.         the rows below 6 and columns to the right of E.
  662.  
  663.         The lower left area defines the row NAMEs, the row ACTIVITY 
  664.         returned from the LP, the MINIMUM and MAXIMUM limit for each 
  665.         row and the DUAL ACTIVITY returned from the LP.  You must 
  666.         provide a minimum and a maximum for each row except the 
  667.         objective function, which is always the last row.  If you 
  668.         leave a cell blank, a zero will be assumed for the entry.  A 
  669.  
  670.  
  671.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 9
  672.  
  673.  
  674.  
  675.         fixed row is defined by simply setting the minimum and 
  676.         maximum equal.  If a row has only a minimum in reality, we 
  677.         recommend that a maximum be placed on the row that is just 
  678.         reasonably above any value you expect the row could achieve.  
  679.         Too large a value could increase roundoff error during the 
  680.         LP and cause other numerical difficulties that could lead to 
  681.         no usable solution possible from the LP.  Again, columns B 
  682.         and E for ACTIVITY and DUAL ACTIVITY are filled in by the LP 
  683.         if you use the spreadsheet input preparation option and then 
  684.         read the file produced back in to your spreadsheet program.  
  685.         The Objective Function ( the profit or value calculation 
  686.         that is to be optimized ) must be the last row.  
  687.  
  688.         The upper right area is used to name all the columns and 
  689.         enter both minimums and maximums for each column.  Rows 4 
  690.         and 5 will contain the column ACTIVITY and the REDUCED COST 
  691.         if these are read back in from an LP generated spreadsheet 
  692.         input.  Row 6 in this area is completely blank.  As for the 
  693.         rows, a blank cell will be interpreted as a zero, minimums 
  694.         and maximums should be reasonable values, fixed columns can 
  695.         be defined by simply setting the minimum and maximum equal.  
  696.         It is best to use all columns as you define from left to 
  697.         right.  Don't leave any blank columns.
  698.  
  699.         Finally, the matrix of coefficients is the lower right area.  
  700.         As before, a blank cell will be interpreted as a zero, so 
  701.         you only have to fill in values that are not zero.  Each row 
  702.         can be viewed as an equation that calculates the row value 
  703.         given the column values:
  704.  
  705.          ROW7 = F7*COLUMNF + G7*COLUMNG + ...    
  706.  
  707.         That's all there is to it.  You do not have to worry about 
  708.         equations to limit column values, slack variables and so 
  709.         forth.  All you have to do is calculate the rows from the 
  710.         columns.  KLP takes care of the row and column limits 
  711.         itself, without using matrix space.  Also, the cells in your 
  712.         matrix can be equations or formulas.  Only the result of 
  713.         your formulas will be transmitted to the LP, so the 
  714.         limitation of only constant coefficients will be 
  715.         automatically satisfied.  One caution, if cells in the 
  716.         matrix are actually formulas, then they will be overwritten 
  717.         if you read an LP generated  spreadsheet input back in on 
  718.         top of the same part of your spreadsheet.
  719.  
  720.         After your matrix is ready, write it to a DIF(tm) file or 
  721.         convert it as required by your spreadsheet program.  Be sure 
  722.         to include all of it from the top left area to the bottom 
  723.         right of the matrix proper.  If you have a choice of storing 
  724.         by rows or columns, pick one and remember your choice.  
  725.         Note:
  726.  
  727.         VISICALC generates a DIF file directly, by row or column as 
  728.         you select.
  729.         LOTUS 123 files are saved by columns and must be translated 
  730.  
  731.  
  732.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 10
  733.  
  734.  
  735.  
  736.         from a WKS file.
  737.         SUPERCALC2 files must be converted with a program from CAL 
  738.         files to DIF.  Also, KLP will ask for the total number of 
  739.         spreadsheet columns and the total number of spreadsheet 
  740.         rows.  This information is not supplied as part of the 
  741.         converted file. 
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 11
  794.  
  795.  
  796.  
  797.         SAVE MATRIX
  798.  
  799.         If you want to save the matrix to a disk file, type S when 
  800.         the main command menu is displayed.  KLP will respond:
  801.  
  802.                   FILENAME FOR MATRIX SAVE (XX.MAT) ?
  803.  
  804.         XX.MAT is the name you previously entered as the desired 
  805.         filename for your matrix.  If you touch the enter key, then 
  806.         the matrix will be saved under that name.  You can, however, 
  807.         enter any other name at this time, with or without a disk 
  808.         drive identifier.  KLP will save the file and display the 
  809.         message: WRITING MATRIX TO FILE.
  810.  
  811.         Note that the only way to change a file already saved, such 
  812.         as your input file, is to save a revision under the same 
  813.         name.
  814.  
  815.         KLP automatically saves its working matrix in a file named 
  816.         TMP.MAT on your data disk.  There must be space on your data 
  817.         disk for this file.  It is automatically erased when you use 
  818.         the quit Q command to end the program.  If the program 
  819.         should for some reason end abnormally, then this file will 
  820.         contain your last optimization matrix.  It can be retrieved 
  821.         for a restart under these circumstances.
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851.  
  852.  
  853.  
  854.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 12
  855.  
  856.  
  857.  
  858.         RETRIEVE MATRIX
  859.  
  860.         In order to retrieve a previously saved matrix, use the 
  861.         command R.  When R is typed, KLP will respond:
  862.  
  863.                  ENTER FILENAME, INCLUDE .DIF OR .MAT EXTENSION
  864.                                  _____________
  865.  
  866.         Type the disk drive prefix, the name and the .MAT extension.  
  867.         If the prefix is omitted, drive A: is assumed.  For example, 
  868.         to retrieve the example problem matrix, type FURNFAC.MAT and 
  869.         then touch ENTER.
  870.  
  871.         When you touch ENTER, KLP will read the file into memory and 
  872.         display the message  READING MATRIX FROM FILE while doing 
  873.         so.  KLP will then return to the command menu.  If KLP 
  874.         cannot find the named file, KLP will print the message  
  875.         CANNOT FIND NAMED FILE, PLEASE TRY AGAIN.  KLP will then 
  876.         repeat the question.                              
  877.              
  878.  
  879.  
  880.  
  881.  
  882.  
  883.  
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893.  
  894.  
  895.  
  896.  
  897.  
  898.  
  899.  
  900.  
  901.  
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 13
  916.  
  917.  
  918.  
  919.                      SECTION 4 - MODIFYING THE MATRIX
  920.         The previous section described how to define a matrix, name 
  921.         its rows and columns, save it and retrieve it.  This section 
  922.         describes how you change the matrix, its parameters, 
  923.         contents of its columns and the limits on its rows.
  924.  
  925.  
  926.         ADJUST MATRIX SIZE
  927.  
  928.         The command N was used to create a new matrix and name its 
  929.         rows and columns.  If you need to change an existing matrix, 
  930.         use the command A.
  931.  
  932.         When A is touched, KLP will respond with the same series of 
  933.         questions as with the N command, except KLP will not ask for 
  934.         a filename, it will modify the matrix in memory that has 
  935.         previously been retrieved or created.  KLP will also provide 
  936.         the characteristics of the existing matrix for your 
  937.         reference.  Please refer to Section 3 for a complete 
  938.         description of the command.
  939.  
  940.         CHANGE COLUMNS
  941.  
  942.         Command C allows you to change any values in the matrix a 
  943.         column at a time and the minimum or maximum limits on any 
  944.         column.  When you touch C, KLP asks:
  945.  
  946.                  COLUMN TO BE CHANGED ? _________
  947.             
  948.         The name of the column you wish to change must be then 
  949.         entered.  Upper or lower case characters in the name can be 
  950.         supplied.  The program will automatically set upper case.
  951.  
  952.         The selected column is then displayed on the screen. For 
  953.         example, the sample problem column STOOLS will appear as:  
  954.  
  955.  
  956.                         MAXIMUM   100.
  957.                         MINIMUM   0. 
  958.                         B BLOCK     2
  959.                         DOWELS     10
  960.                         LABOR       4
  961.                         PROFIT    -90
  962.  
  963.  
  964.  
  965.                 MODIFYING COLUMN  STOOLS    , -INS-  TO ACCEPT 
  966.         CHANGES
  967.  
  968.         First, the MAXIMUM  and MINIMUM values for the column are 
  969.         shown.  Second, all non-zero entries in the column are 
  970.         displayed, opposite their respective row names.  Third, if 
  971.         there are any rows in the matrix that are zero for this 
  972.         column, then a number of blank lines are displayed 
  973.         corresponding to the empty rows.
  974.  
  975.  
  976.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 14
  977.  
  978.  
  979.  
  980.  
  981.  
  982.         The cursor will be placed at the first letter of the first 
  983.         name.  The enter key or the TAB key move you forward, field 
  984.         by field.  The BACK-TAB (SHIFT-TAB) moves you back field by 
  985.         field.  All cursor keys do what you think they should. The 
  986.         HOME key takes you to the first field.  The END key takes 
  987.         you to the last field.  If your changes get out of hand and 
  988.         you want to forget the whole thing, the ESC key forgets all 
  989.         changes to the current column.    To change a value, move 
  990.         the cursor to the correct field using tabs, enter key, etc. 
  991.         Then type the new value over the old one.  Any characters 
  992.         left from the original number are preserved.
  993.  
  994.         Any blank rows may be used to add a value to any row that 
  995.         did not originally have one.  Type the row name in the first 
  996.         field and the desired value in the second field of each 
  997.         line.  It is important to left-adjust the name; if you leave 
  998.         a blank in front of the name, KLP will not be able to 
  999.         recognize your entry.
  1000.  
  1001.         When all changes have been made as you desire, touch the INS 
  1002.         key to update the matrix. KLP will then ask for the name of 
  1003.         the next column you plan to change.  Respond with its name, 
  1004.         or touch enter to return to the command menu,  The changes 
  1005.         are permanent to the copy of the matrix held in memory.  If 
  1006.         you want to save a copy of your modified matrix, you must do 
  1007.         so with Command S.  
  1008.  
  1009.         The modify option is limited to 60 non-zero entries in a 
  1010.         column.  If you have more than this,(unlikely), the excess 
  1011.         will not be visible on the modify screen.  To change these 
  1012.         excess row values, you can type row names over those that 
  1013.         are visible and then enter new values as usual.  Since 
  1014.         modifications are cumulative, you can modify the same column 
  1015.         several times to get all necessary changes made.  
  1016.  
  1017.         UPDATE ROWS      
  1018.         As with the columns of the matrix, the "left-hand-side" of 
  1019.         every row is automatically initialized at zero.  In order to 
  1020.         change this value, use the command U.
  1021.  
  1022.         When you touch U, KLP will ask for the name of the row you 
  1023.         plan to update.  Respond as you did with the command C.  KLP 
  1024.         will then display a screen similar to that shown below:
  1025.  
  1026.                   MAXIMUM          0                       
  1027.                   MINIMUM          0       
  1028.                   STOOLS           2
  1029.                   CHAIRS           3
  1030.                   TABLES          12
  1031.                   B BLOCK         -1                                 
  1032.                   ________    ________                                
  1033.                   ________    ________  
  1034.                               
  1035.       MODIFYING ROW B BLOCK  ,  -INS-  TO ACCEPT CHANGES
  1036.  
  1037.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 15
  1038.  
  1039.  
  1040.  
  1041.            Changing row contents is done in exactly the same fashion
  1042.            as described for column changes.  See the section directly
  1043.            above.  After making all desired changes, touch the INS
  1044.            key to update the row.  KLP will then ask for another row
  1045.            to change.  Respond with a name, or touch enter to return
  1046.            to the command menu.                           
  1047.  
  1048.                                                                      
  1049.                                                                   
  1050.                                                                     
  1051.                 
  1052.  
  1053.  
  1054.  
  1055.  
  1056.  
  1057.  
  1058.  
  1059.  
  1060.  
  1061.  
  1062.  
  1063.  
  1064.  
  1065.  
  1066.  
  1067.  
  1068.  
  1069.  
  1070.  
  1071.  
  1072.  
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.  
  1081.  
  1082.  
  1083.  
  1084.  
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.  
  1094.  
  1095.  
  1096.  
  1097.  
  1098.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 16
  1099.  
  1100.  
  1101.  
  1102.                         SECTION 5 - SOLVE LP PROBLEM
  1103.  
  1104.         Once the optimization problem has been defined and expressed 
  1105.         as a KLP matrix, the LP problem can be solved.  This is done 
  1106.         by typing the command: L.
  1107.  
  1108.         When L is typed, KLP saves a copy of the matrix in a 
  1109.         temporary file and then solves the LP problem.  You will see 
  1110.         the LP iterations count up as the optimization proceeds.  A 
  1111.         summary of the results will be given on the lower half of 
  1112.         the screen showing iterations, the final value of the 
  1113.         objective function, whether the solution is Optimal or 
  1114.         Infeasible, and an estimate of the round-off error that 
  1115.         occurred during the solution procedure.  For example, the 
  1116.         results for the sample problem will appear as:
  1117.  
  1118.  
  1119.           OPTIMUM SOLUTION FOUND               ITERATION   6
  1120.           OBJECTIVE FUNCTION VALUE = -220.5    ROUNDOFF, RMS = 0
  1121.  
  1122.  
  1123.  
  1124.         If  all  the  constraints cannot be  satisfied,  due  to  an 
  1125.         incorrectly  specified problem,  KLP will indicate that  the 
  1126.         solution is INFEASIBLE.   Under no circumstances should such 
  1127.         a  solution  be  used for a  useful  purpose.   It  is  very 
  1128.         important to find the cause of the infeasibility and correct 
  1129.         it.  Only OPTIMUM solutions contain useful information about 
  1130.         the real problem.  
  1131.  
  1132.         Note that KLP calculates an estimate of the roundoff error.  
  1133.         Roundoff is the loss of part of the result of a mathematical 
  1134.         operation, like multiplication, due to the fixed size of 
  1135.         number representations in computers.  The extent of this 
  1136.         roundoff is estimated by comparing the result for a row 
  1137.         value from the LP with that calculated from the original 
  1138.         matrix using the final column activities.  The number 
  1139.         printed is the square root of the average squared 
  1140.         differences for all rows.  If the Roundoff exceeds 2.0, KLP 
  1141.         prints the message:
  1142.  
  1143.                   ROUNDOFF LARGE, MATRIX SHOULD BE SCALED.
  1144.          
  1145.         If the Roundoff exceeds 10.0, KLP prints the message:
  1146.  
  1147.                   ROUNDOFF EXCESSIVE, ANSWER PROBABLY NOT USABLE,
  1148.                    MATRIX MUST BE SCALED!
  1149.  
  1150.         High roundoff may render a solution useless.  It is usually 
  1151.         caused by a matrix containing numbers that differ by more 
  1152.         than four orders of magnitude.  If you see this message, 
  1153.         then you must scale your matrix.  Scaling in this case means 
  1154.         multiplying or dividing rows or columns by factors of ten so 
  1155.         that when you are through all the numbers in the matrix are 
  1156.         between 0.01 and 100.0 preferably.
  1157.  
  1158.  
  1159.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 17
  1160.  
  1161.  
  1162.  
  1163.  
  1164.         Degeneracy in LP is a rare problem that causes the solution 
  1165.         to cycle among a small number of answers that all have very 
  1166.         close to the same value of the objective function.  It is 
  1167.         not possible to detect easily, or cure easily.  Symptoms are 
  1168.         a large number of iterations, such as hitting the maximum 
  1169.         iteration limit several times, and answers that are about 
  1170.         the same with different numbers of iterations.  The problem 
  1171.         is sometimes caused by having a large number of row limits 
  1172.         both equal to zero.  In this case, it can be cured by 
  1173.         changing some of the limits slightly.
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212.  
  1213.  
  1214.  
  1215.  
  1216.  
  1217.  
  1218.  
  1219.  
  1220.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 18
  1221.  
  1222.  
  1223.  
  1224.         Section 6 - PRINT MATRIX AND RESULTS
  1225.  
  1226.         In this section we describe how to print the matrix or the 
  1227.         results of an optimization to a screen, printer or disk 
  1228.         file.
  1229.  
  1230.         PRINT MATRIX
  1231.  
  1232.         The command P is used to go to a sub-menu that directs the 
  1233.         printing of the matrix to your screen (S), to a printer (P) 
  1234.         or to a disk file (D).  You can use the Command P and KLP 
  1235.         will prompt you as shown below.  However, you can also type 
  1236.         PS, PP or PD to go directly to the print function without 
  1237.         pausing.  The Sub-menu is :
  1238.  
  1239.  
  1240.                   PRINT MATRIX TO PRINTER  ?  (P)
  1241.                                TO SCREEN   ?  (S)
  1242.                                TO DISK FILE?  (D)
  1243.                           ENTER P,S OR D
  1244.  
  1245.         When going to a printer, KLP sets the print width to 132 and 
  1246.         uses condensed print so that 10 matrix columns can be 
  1247.         printed across the page.  KLP will remind you to make the 
  1248.         printer ready.  If it is not ready, KLP will re-start at the 
  1249.         above sub-menu.  When going to the screen or disk file, KLP 
  1250.         only gets four columns of the matrix across the page since 
  1251.         80 columns are assumed.  Thus the disk file can be printed 
  1252.         later, viewed or edited without exceeding the screen size.  
  1253.         If you request a disk file on a write-protected disk, KLP 
  1254.         will pause with an error message and a writeable disk must 
  1255.         be put in the appropriate drive in order to continue.  The 
  1256.         matrix print to screen looks as below for the sample 
  1257.         problem:
  1258.  
  1259.                                                       SAMPLE PROBLEM
  1260.                       COLUMN NAME -     STOOLS    CHAIRS    TABLES    B BLOCK    
  1261.                           MAXIMUM -    500.000   500.000   500.000   100.000 
  1262.                           MINIMUM -      0.000     0.000     0.000     0.000 
  1263.        ROW NAME      MAXIMUM   MINIMUM
  1264.       B BLOCK        0.000     0.000     2.000     3.000    12.000    -1.000 
  1265.       DOWELS         0.000     0.000    10.000    14.000    16.000     0.000 
  1266.       LABOR          0.000     0.000     4.000    12.000    20.000     0.000 
  1267.       PROFIT         0.000     0.000   -90.000  -120.000  -400.000     4.000 
  1268.  
  1269.  
  1270.                              COLUMN NAME -     DOWELS    LABOR      
  1271.                                  MAXIMUM -    400.000   320.000 
  1272.                                  MINIMUM -      0.000     0.000 
  1273.               ROW NAME      MAXIMUM   MINIMUM
  1274.              B BLOCK        0.000     0.000     0.000     0.000 
  1275.              DOWELS         0.000     0.000    -1.000     0.000 
  1276.              LABOR          0.000     0.000     0.000    -1.000 
  1277.              PROFIT         0.000     0.000     1.250    11.000 
  1278.  
  1279.  
  1280.  
  1281.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 19
  1282.  
  1283.  
  1284.  
  1285.         PRINT RESULTS TO SCREEN, PRINTER OR DISK FILE
  1286.  
  1287.         Results are printed to the screen by typing a 1, to the 
  1288.         printer by typing a  2 or to a disk file by typing a  3.  
  1289.         The output looks the same no matter where sent.  The 
  1290.         cautions and error messages are the same as above for 
  1291.         printing the matrix.  The printer must be ready when the 
  1292.         command is given.  The disk file must be sent to a writeable 
  1293.         disk.  The results printout appears as follows for the 
  1294.         sample problem:
  1295.  
  1296.  
  1297.                KINETICS LINEAR PROGRAMMING SYSTEM     12-01-1983 10:50:00
  1298.                          SAMPLE PROBLEM              
  1299.               COLUMN VARIABLES 
  1300.                 NAME    ACTIVITY    MINUMUM     MAXIMUM     RED. COST
  1301.              STOOLS      36.364       0.000     500.000       0.000   
  1302.              CHAIRS       0.000       0.000     500.000     -78.818   
  1303.              TABLES       2.273       0.000     500.000       0.000   
  1304.              B BLOCK    100.000       0.000     100.000       8.091   
  1305.              DOWELS     400.000       0.000     400.000       0.932   
  1306.              LABOR      190.909       0.000     320.000       0.000   
  1307.          
  1308.              ROW CONSTRAINTS 
  1309.                NAME     ACTIVITY   MINUMUM     MAXIMUM     DUAL ACT.
  1310.              B BLOCK      0.000       0.000       0.000     -12.091   
  1311.              DOWELS       0.000       0.000       0.000      -2.182   
  1312.              LABOR        0.000       0.000       0.000     -11.000   
  1313.              PROFIT   -1181.818       0.000       0.000       0.000   
  1314.  
  1315.  
  1316.         Note that if the sum of rows and columns is greater than 15, 
  1317.         the screen cannot hold the entire output.  The filename for 
  1318.         disk file output is the same as your input file with the 
  1319.         extension changed to TXT.
  1320.  
  1321.         RESULTS TO A SPREADSHEET INPUT FILE
  1322.         (DUMP TO SS FILE)
  1323.  
  1324.         The command D causes the creation of a DIF file suitable for 
  1325.         reading back in to your spreadsheet program.  The file will 
  1326.         be written to the same disk as that containing your DIF or 
  1327.         MAT input file.  The name of the file will be the same as 
  1328.         your input file with the extension changed to SSI.  Remember 
  1329.         that if you read this file back into your spreadsheet in the 
  1330.         same positions as your original matrix you will wipe out any 
  1331.         formulas or calculations in affected cells.  Be careful!
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 20
  1343.  
  1344.  
  1345.  
  1346.                         SECTION 7 - COMMAND SUMMARY
  1347.  
  1348.                       KINETICS LINEAR PROGRAMMING SYSTEM
  1349.  
  1350.                DEFINE NEW MATRIX -  N       CHANGE COLUMNS -      C
  1351.                RETRIEVE MATRIX -    R       UPDATE ROW LIMITS -   U
  1352.                SAVE MATRIX -        S       ADJUST MATRIX SIZE -  A
  1353.                PRINT MATRIX -       P       SOLVE LP -            L
  1354.                RESULTS TO SCREEN -  1       QUIT -                Q
  1355.                RESULTS TO PRINTER - 2       DUMP TO SS FILE -     D
  1356.                RESULTS TO DISK FILE-3       BEGIN FROM SS FILE -  B
  1357.              --------------------------------------------------------
  1358.  
  1359.         COMMAND N - DEFINE NEW MATRIX
  1360.         Requests filename for saving the matrix, problem title, 
  1361.         number of iterations, number and names of rows and columns.
  1362.  
  1363.         COMMAND R - RETRIEVE MATRIX
  1364.         Reads a matrix file from disk into memory for solution, 
  1365.         modification, output, etc.
  1366.  
  1367.         COMMAND S - SAVE MATRIX
  1368.         Writes a matrix file as specified by the user from memory to 
  1369.         disk.
  1370.  
  1371.         COMMAND P - PRINT MATRIX
  1372.         Prints the matrix currently in memory to the screen, printer 
  1373.         or a disk file.
  1374.  
  1375.         COMMAND 1,2 OR 3 - RESULTS TO SCREEN, PRINTER, DISK FILE
  1376.         Sends results of the most recent optimization to the screen, 
  1377.         printer or a disk file.
  1378.  
  1379.         COMMAND C - CHANGE COLUMNS
  1380.         Allows change of any values in columns of the matrix and the 
  1381.         minimum or maximum value for a column.  
  1382.  
  1383.         COMMAND U - UPDATE ROWS      
  1384.         Change the value of row limits and any values in rows.
  1385.  
  1386.         COMMAND A - ADJUST MATRIX SIZE
  1387.         Similar to command N, this command allows change of title, 
  1388.         number of iterations, change in the number of rows or 
  1389.         columns and change in the names of rows or columns.  Rows or 
  1390.         columns can also be deleted by blanking out the name.
  1391.  
  1392.         COMMAND L -SOLVE LP
  1393.         Perform the optimization using the current matrix in memory.  
  1394.         Original matrix is saved prior to optimization and restored 
  1395.         to memory from disk file after optimization.
  1396.  
  1397.         COMMAND Q - QUIT
  1398.         Should you for some reason tire of creation, optimization 
  1399.         and report printing, a Q will return you to the system,(A>).
  1400.  
  1401.  
  1402.  
  1403.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 21
  1404.  
  1405.  
  1406.  
  1407.         COMMAND D - DUMP TO SS FILE
  1408.         Writes the results of an optimization and the complete 
  1409.         matrix to a spreadsheet input format file.  Used to transfer 
  1410.         results back to your spreadsheet program.
  1411.  
  1412.         COMMAND B - BEGIN FROM SS FILE
  1413.         Reads a spreadsheet output (DIF) file into memory to set up 
  1414.         a matrix in KLP that was defined in your spreadsheet program 
  1415.         according to the standard KLP format.  
  1416.  
  1417.  
  1418.  
  1419.  
  1420.  
  1421.  
  1422.  
  1423.  
  1424.  
  1425.  
  1426.  
  1427.  
  1428.  
  1429.  
  1430.  
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.  
  1442.  
  1443.  
  1444.  
  1445.  
  1446.  
  1447.  
  1448.  
  1449.  
  1450.  
  1451.  
  1452.  
  1453.  
  1454.  
  1455.  
  1456.  
  1457.  
  1458.  
  1459.  
  1460.  
  1461.  
  1462.  
  1463.  
  1464.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 22
  1465.  
  1466.  
  1467.  
  1468.                              SECTION 8. - GLOSSARY
  1469.  
  1470.         ACTIVITY - The value of a row or column variable in the 
  1471.         final solution. In other words, this is the answer.
  1472.  
  1473.         COLUMN - A named variable, with upper and lower limits, 
  1474.         corresponding to a vertical set of numbers in a matrix.  
  1475.         Sometimes called a Vector.
  1476.  
  1477.  
  1478.         DUAL ACTIVITY - The effect on the objective function of a 
  1479.         one unit change in a row limit.  Also called a Shadow Price.  
  1480.         A negative Dual Activity indicates that an increase in the 
  1481.         maximum will improve the value of the objective function,(ie 
  1482.         more negative).
  1483.  
  1484.         INFEASIBLE - A solution in which limits set either on 
  1485.         columns or rows are not obeyed.  This is the garbage out 
  1486.         obtained from garbage in.  This indicates that it is 
  1487.         impossible to meet all row or column limits at the same 
  1488.         time.  The answer must not be used.  
  1489.  
  1490.         ITERATIONS - The number of times that the matrix is examined 
  1491.         for a possible improvement in the Objective Function.
  1492.  
  1493.         MATRIX - The set of numbers in vertical columns and 
  1494.         horizontal rows that represent the problem.
  1495.  
  1496.         MAXIMUM - The upper limit set for the value of either a 
  1497.         column or a row.
  1498.  
  1499.         MINIMUM - The lower limit set for the value of either a 
  1500.         column or a row.
  1501.  
  1502.         OBJECTIVE FUNCTION - The row value to be optimized.  In KLP 
  1503.         the objective function is always the last, bottom row and is 
  1504.         always minimized.
  1505.  
  1506.         OPTIMUM - A final solution that satisfies all row and column 
  1507.         limits and has the minimum value of the objective function 
  1508.         possible.
  1509.  
  1510.         REDUCED COST - The value of changing a column variable.  
  1511.         Similar to a Dual Activity or Shadow Price.  A positive 
  1512.         reduced cost indicates that an increase in the column value 
  1513.         would improve the objective function,(ie would make it more 
  1514.         negative).
  1515.  
  1516.         ROUNDOFF - The loss of part of the result of a mathematical 
  1517.         operation, like multiplication, due to the fixed size of 
  1518.         number representations in computers.  For example, 
  1519.         multiplying two 5 digit numbers gives a 10 digit result.  If 
  1520.         the result is now truncated to 5 digits, some of the 
  1521.         significance of the result is lost.  In KLP, the extent of 
  1522.         roundoff error occurring is estimated by comparing the 
  1523.  
  1524.  
  1525.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 23
  1526.  
  1527.  
  1528.  
  1529.         result for a row value from the LP with the value calculated 
  1530.         from the original matrix.  KLP prints the RMS, (root mean 
  1531.         square ) error for all rows.
  1532.  
  1533.         ROW - A named variable, corresponding to a horizontal set of 
  1534.         numbers in the matrix  usually representing an equation that 
  1535.         calculates a row value from column values.  Sometimes called 
  1536.         a Constraint.
  1537.  
  1538.         SCALING - The process of multiplying or dividing columns 
  1539.         and/or rows by a factor to make the numerical magnitude of 
  1540.         numbers in the matrix as close to 1.0 as convenient.  
  1541.         Important in reducing the effects of roundoff on the 
  1542.         results.
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584.  
  1585.  
  1586.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 24
  1587.  
  1588.  
  1589.  
  1590.                            SECTION 9 - REFERENCES
  1591.  
  1592.         Effective problem solving with LP takes continued use of the 
  1593.         method and continued study and reading of the work of others 
  1594.         in the field.  We suggest the following books on the subject 
  1595.         as representative of the literature that is both instructive 
  1596.         and suggestive of problem areas and solution technique:
  1597.  
  1598.         Linear Programming, Vasek Chvatal, W.H. Freeman & Co. 1983.
  1599.  
  1600.         Linear Programming, S.I.Gass, McGraw-Hill, 1975.
  1601.  
  1602.         Linear Programming and Extensions, G.B. Dantzig, Princeton 
  1603.         University Press, 1963.
  1604.  
  1605.         The bibliographies in these books will lead you further.  
  1606.         The above list is obviously not exhaustive.
  1607.  
  1608.  
  1609.  
  1610.  
  1611.  
  1612.  
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 25
  1648.  
  1649.  
  1650.  
  1651.              SECTION 10 - KINETICS SOFTWARE LICENSE AGREEMENT
  1652.  
  1653.         1. SOFTWARE LICENSE AGREEMENT 
  1654.         KINETICS SOFTWARE  grants and user agrees to accept a non-
  1655.         exclusive license to use the KLP program and associated 
  1656.         documentation under the following terms and conditions.
  1657.  
  1658.         2. LICENSE 
  1659.         The KLP Program diskette may be copied and shared.  Copies 
  1660.         must be complete, as originally distributed by Kinetics 
  1661.         Software.  No charge is to be made for the program, except 
  1662.         perhaps a nominal charge for the diskette.  
  1663.  
  1664.         If you find the program useful, we trust you to send us 
  1665.         $45.00 and become a registered user.  Registered users are 
  1666.         entitled to purchase higher capacity versions of KLP at 
  1667.         substantial discounts and may receive help by mail from 
  1668.         Kinetics.  Correspondence from non-registered users will not 
  1669.         be acknowledged in any way. Users who register will also 
  1670.         receive notice of new versions, corrections and other 
  1671.         software products of Kinetics Software.  If you support us, 
  1672.         we will make it worth your while.  Be sure to include the 
  1673.         serial number of your diskette and enclose a blank diskette 
  1674.         when you register.  If your version is not the latest, we 
  1675.         will send you the latest free of charge.
  1676.  
  1677.         3. COPYRIGHT
  1678.         COPYRIGHT 1984 KINETICS SOFTWARE.  All Rights Reserved. 
  1679.         The KLP program or any  of the documentation or other 
  1680.         materials may not be assigned, sub-licensed, distributed or 
  1681.         otherwise transferred except as licensed above.
  1682.  
  1683.         4. DISCLAIMER 
  1684.         The KLP software and documentation are sold as is, and 
  1685.         without warranty as to performance.  While KINETICS SOFTWARE 
  1686.         believes this to be a high quality product, the user must 
  1687.         assume all risks of using the program.  In no event will 
  1688.         KINETICS SOFTWARE be liable to a user for any damages, 
  1689.         including any lost profits or lost savings or other 
  1690.         incidental or consequential damages arising out of the use 
  1691.         or inability to use KLP, even if KINETICS SOFTWARE has been 
  1692.         advised of the possibility of such damages, or for any claim 
  1693.         by any other party.
  1694.  
  1695.         UPGRADE POLICY
  1696.  
  1697.         New releases and new versions may be released from time to 
  1698.         time.  Registered users of older versions will be entitled 
  1699.         to upgrade at nominal cost, or to purchase higher capacity 
  1700.         versions at substantial discount.  Announcements of such new 
  1701.         releases will be mailed to the purchasers registration 
  1702.         address.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 26
  1709.  
  1710.  
  1711.  
  1712.                          REGISTRATION OR ORDER FORM
  1713.  
  1714.         Send to:
  1715.  
  1716.         Kinetics Software
  1717.         1390 Fell Street  #103
  1718.         San Francisco, Ca.  94117
  1719.  
  1720.         ------------------------------------------------------------
  1721.         Name: ____________________________________________
  1722.         Address: _________________________________________
  1723.         City:    _________________________________________
  1724.         State:   _______________   Zip Code: _____________
  1725.  
  1726.         ------------------------------------------------------------
  1727.  
  1728.         REGISTRATION
  1729.  
  1730.         Serial Number of program : ______________________
  1731.  
  1732.         Enclose check or money order for $45.00 and a blank 
  1733.         diskette.
  1734.  
  1735.         -----------------------------------------------------------
  1736.  
  1737.         ORDER
  1738.  
  1739.         ____ Latest copy of Version 1.9,     Enclose $10.00.
  1740.              Serial number of program: ______________________
  1741.              User Registration Number: ______________________
  1742.  
  1743.         -----------------------------------------------------------
  1744.  
  1745.          
  1746.  
  1747.  
  1748.  
  1749.  
  1750.  
  1751.  
  1752.  
  1753.  
  1754.  
  1755.  
  1756.  
  1757.  
  1758.  
  1759.  
  1760.  
  1761.  
  1762.  
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.                  KINETICS LINEAR PROGRAMMING SYSTEM  - PAGE 27
  1770.